package com.ftg.learn.chapter12;

import jdk.nashorn.api.scripting.ScriptUtils;

import java.util.Deque;
import java.util.LinkedList;
import java.util.Objects;
import java.util.Queue;

/**
 * 队列
 *
 * @author kangjx
 * @version 1.0
 * @date 2023/2/9 上午10:46
 */
public class LearnLinked02 {

    public static void main(String[] args) {
//        Deque<String> l1 = new LinkedList<>();
//        ""实例
//                null 没有实例
//                        "null"有实例 值为 null
        Queue<String> l2 = new LinkedList<>();
        String val = l2.peek();
        String val1 = l2.element();
        if(Objects.nonNull(val)){
            System.out.println(l2.peek().toLowerCase());
        }
        //先进先出
        l2.add("a");
        l2.add("b");
        l2.add("c");

        //取出队首的内容
//        System.out.println(l2.peek());
//
//        //返回队首信息，并将头指针后移一位，原队首删除
//        System.out.println(l2.poll());
//        System.out.println(l2.poll());
//        System.out.println(l2.poll());
        // LinkedList 里面的offer 调用是 a()
        //队尾
        l2.offer("d");
//        System.out.println(l2.poll());
//        System.out.println(l2.poll());
//        System.out.println(l2.poll());
//        System.out.println(l2.poll());
        //删除 队首
        l2.remove();
//        System.out.println(l2.poll());
//        System.out.println(l2.poll());
//        System.out.println(l2.poll());
//        System.out.println(l2.poll());
        //约瑟夫环
//        Queue<Integer> l2 = new LinkedList<>();
//        for (int i = 0; i < 100; i++) {
//            l2.add(i + 1);
//        }
//        System.out.println(l2);
//        //产生了一个存储100个元素 的队列
//        while(l2.size() > 2){
//            l2.add( l2.poll() );
//            l2.add( l2.poll() );
//            l2.add( l2.poll() );
//            l2.poll();
//        }
//        System.out.println(l2);
    }

}
